﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using TMD.GT.Site.Controladora;
using TMD.GT.Entidades;

namespace TMD.GT.Site.Vistas.MonitoreoComponente
{
    public partial class ActCiclosRev_Listado : System.Web.UI.Page
    {
        protected int codigoComponente;

        protected void Page_Load(object sender, EventArgs e)
        {
            Object codigo = Request.QueryString["ID_componente"];
            if (codigo != null)
            {
                codigoComponente = Convert.ToInt32(codigo);
            }

            if (!Page.IsPostBack)
            {
                // cargar Componente
                List<Componente> lista = ComponenteControladora.ListaUnComponente(new Componente { CodigoComponente = codigoComponente });
                Componente componente = lista.First<Componente>();
                lblCodigoComponente.Text = componente.Codigo;
                lblNombreComponente.Text = componente.Nombre;
                lblTipoComponente.Text = componente.Clase;

                // cargar listados
                gvCiclosRevision.DataSource = CicloRevisionControladora.ListarCiclosRevision(new CicloRevision { DESCRIPCION = "", CODIGO_COMPONENTE = codigoComponente });
                gvCiclosRevision.DataBind();
            }
        }

        protected void btnBuscar_Click(object sender, EventArgs e)
        {
            // cargar busqueda
            CicloRevision cicloRevision = new CicloRevision();
            if (txtCodigo.Text != "")
            {
                cicloRevision.CODIGO_CICLOREVISION = Int32.Parse(txtCodigo.Text);
            }
            cicloRevision.DESCRIPCION = txtDescripcion.Text;
            if (txtFecha.Text != "")
            {
                cicloRevision.FECHA_INICIO = DateTime.Parse(txtFecha.Text);
            }
            cicloRevision.CODIGO_COMPONENTE = codigoComponente;

            gvCiclosRevision.DataSource = CicloRevisionControladora.ListarCiclosRevision(cicloRevision);
            gvCiclosRevision.DataBind();
        }

        protected void btnClear_Click(object sender, EventArgs e)
        {
            txtFecha.Text = "";
        }

        protected void btnNuevo_Click(object sender, EventArgs e)
        {
            Response.Redirect("SeleccionarCicloRevision.aspx?ID_componente=" + codigoComponente);
        }
        
        protected void gvCiclosRevision_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "cmdDelete")
            {
                int codigo = Convert.ToInt32(e.CommandArgument);
                Boolean exito = CicloRevisionControladora.EliminarCicloRevision(codigo, codigoComponente);
                if (exito)
                {
                    btnBuscar_Click(sender, e);
                }
            }
        }

        protected void gvCiclosRevision_RowDataBound(object sender, GridViewRowEventArgs e)
        {

            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                ImageButton imb = e.Row.FindControl("imgBtnDelete") as ImageButton;
                imb.Attributes.Add("onclick", "javascript:return " + "confirm('¿Confima la eliminación del ciclo de revisión con código " + DataBinder.Eval(e.Row.DataItem, "CODIGO_CICLOREVISION") + "?')");
            }
        }

        protected void btnRegresar_Click(object sender, EventArgs e)
        {
            Response.Redirect("SelComponente-Listado.aspx");
        }
    }
}